/*
 * ================================================================================变量定义区
 */
var showCount = 10; 		 // 定义每页显示条数
var currentPage = 1;		 // 全局变量，当前页

var treeNode; 				 // 组织机构树节点
var operateType = 0; 		 // 区分新增加组织机构还是更新组织机构[0：新增加组织机构，1：更新组织机构]
var chooseIds = new Array(); // 选定的防火墙标识数组

var type=1;					//加入到这个组织机构	
/*
 * ================================================================================页面初始化函数
 */
$(function()
{
	// 加载组织机构树
	departmentVDITree();
	
	//删除防火墙信息
	$("#deleteFirewalls").click(function(){
		deleteFirewalls();
	});
	//更新防火墙的信息
	$("#updateFirewalls").click(function(){
		updateFirewalls();
	});
	//新增防火墙信息
	$("#addFirewalls").click(function(){
		addOrModifyFirewalls();
	});
}
);

/*
 * ================================================================================函数定义区
 * 
 */

/**
 * 加载树和树的点击事件
 */
function departmentVDITree()
{
	var setting = 
	{
			data: 
			{
				key: 
				{
					title:"titleTip",
				},
				simpleData: 
				{
					enable: true
				}
			},
			callback: 
			{
				onClick: showDepartmentVDIFirewall
			}
		};

	var zNodes = '[';
	$.ajax(
	{
		type: 'POST',
        url: BASE_PATH +'/firewallManagement/queryDepartmentVDI.do',
        dataType:"json",
        data:
        {
        },
        success:function(data,textStatus)
        {
        	for( var i = 0; i < data.length; i++ )
        	{
        		zNodes += '{id:"' + convertSpecialChar(data[i].deptId) + '",';
        		zNodes += 'pId:"' + convertSpecialChar(data[i].parentId) + '",';
        		zNodes += 'name:"' + convertSpecialChar( data[i].deptName ) + '",';
        		zNodes += 'titleTip:"' + convertSpecialChar( data[i].deptName ) + '",';
        		if( data[i].deptDesc == null )
        		{
            		zNodes += 'deptDesc:"",';
        		} 
        		else 
        		{
            		zNodes += 'deptDesc:"' + convertSpecialChar( data[i].deptDesc ) + '",';
        		}
        		
        		if(data[i].deptName.match(/(VDI-)/)){
        			
        			zNodes += 'iconSkin:"iconComputer",';
        			
        		}
        		zNodes += 'isLeaf:"' + data[i].isLeaf + '",';
        		zNodes += 'open:true}';
        		
        		if( i != (data.length - 1) )
        		{
        			zNodes += ',';
        		}
        	}
        	zNodes += ']';
    		// 加载树
    		$.fn.zTree.init($("#departmentVDITree"), setting, eval(zNodes));
    		
    		//判断是否第一次进入该页面
    		if($("#treeNodeId").val()!="")
    		{
    			
    			var treeNodeId = $("#treeNodeId").val(); 
    			$("#" + treeNodeId+ "_a").trigger("click");
    			
    		}else
    		{
   			
    			$("#departmentVDITree_1_a").trigger("click");
    		}
    		
        },
		error:function(e)
		{
			openAlert("加载数据错误！"); 
			return;
		}
	}
	);
}

/**
 * 点击树节点展示树下所有防火墙信息
 * 
 * @param event
 * @param treeId
 * @param treeNode	
 * @param clickFlag
 */
function showDepartmentVDIFirewall(event, treeId, tempTreeNode, clickFlag) 
{
	if( treeNode != null && treeNode.id != tempTreeNode.id )
	{

		// 切换节点 ，都从第一页开始
		currentPage = 1;
	}
	
	// 全局变量赋予树节点ID
	treeNode = tempTreeNode;
	
	
	$("#operateUserDiv").show();
    //初始化列表，取第一页数据
	getDataList(currentPage);

	
}			

/**
 * 获取列表数据
 * @param pageIndex 请求的页码
 */
function getDataList(pageIndex)
{
	$.ajax(
	{
		type: 'POST',
		async: false,
        url: BASE_PATH +'/firewallManagement/queryDeptVDIFirewall.do',
        dataType:"json",
        data:
        {
        	"showCount"		                    :showCount,
        	"currentPage"	                    :pageIndex,
        	"vdiId"		                        :treeNode.id,
        	"type"								:type,
        	"query_condition_field_list"		:"vdiId,type"          
        },
        cache:false,
        success:function(data,textStatus)
        {
        	var html = "";        	
        	var pageData = data;
        	var totalResult = pageData.queryParam.totalResult;
        	if(pageData.queryResult != null)
        	{
        		
        		// 获取分页数据，构造列表展示
	        	$.each(pageData.queryResult,function(i,n)
	        	{
	        		html += '<tr onclick="chooseRow(this,false);"id="tr_index_'+i+'" class="chooseUser">';
	        		html += '<td style="text-align:center;" title='+ switcHtml(n.startTime) +'>'+ switcHtml(n.startTime) +'</td>';
	        		html += '<td style="text-align:center;" title='+ switcHtml(n.endTime) +'>'+ switcHtml(n.endTime) +'</td>';
	        		html += '<td style="text-align:left;" title='+switcHtml(n.vdiIP) +'><input type="hidden" value="'+ switcHtml(n.id) +'"/>'+ switcHtml(n.vdiIP) +'</td>';
	        		html += '<td style="text-align:left;" title='+ switcHtml(n.targetIp) +'>'+ switcHtml(n.targetIp) +'</td>';     		
	        		html += '<td style="text-align:left;" title='+ switcHtml(n.port) +'>'+ switcHtml(n.port) +'</td>';      		
	        		html += '<td style="text-align:left;" title='+ switcHtml(n.direction) +'>'+ switcHtml(n.direction) +'</td>';
	        		html += '</tr>';
	        	}
	        	);  
        	} 
        	else
        	{
        		html = '<tr><td colspan="2">No items.</td></tr>';
        	}
        	$('#tBodyList').html(html);
        	
        	currentPage = pageIndex;
    		if(totalResult == 0)
    		{
    			$('#tBodyList').html('<tr><td style="text-align:center;">No items.</td></tr>');
    			
    			// 没有记录的时候，隐藏分页插件
    			$("#pagination").hide();
    		} 
    		else 
    		{
    			// 创建分页
    			$("#pagination").show();
    			$("#pagination").pagination(totalResult, 
    			{
    				num_edge_entries: 1, //边缘页数
    				num_display_entries: 3, //主体页数
    				current_page:currentPage,
    				callback: getDataList,
    				items_per_page:showCount //每页显示1项
    			}
    			);
    		};
        },
		error:function(e)
		{
			openAlert("加载数据错误！"); 
			return;
		}
	}
	);
} 
/**
 * 选择一行
 */
function chooseRow(o) 
{
	var id = $(o).attr("id");
	var flag = false;
	var index = null;
	if (chooseIds.length > 0) 
	{
		for (var i = 0; i < chooseIds.length; i++) 
		{
			if (chooseIds[i] == id) 
			{
				index = i;
				flag = true;
				break;
			}
		}
	}
	
	if (flag) 
	{
		$(o).removeClass("list_choosedRow");
		chooseIds = deleteArrayByIndex(index, chooseIds);
	} 
	else 
	{
		$(o).addClass("list_choosedRow");
		chooseIds.push(id);
	}
}

/**
 * 选择防火墙
 */
function deleteFirewalls() 
{
	if (chooseIds.length > 0) 
	{
		var firewalls = new Array();
		
		for( var i = 0; i < chooseIds.length; i++ )
		{
			var firewall = $("#" + chooseIds[i] ).children("td").children("input").val();		
			// 拼接需要移除的防火墙集合
			firewalls.push( encodeURIComponent(firewall) );
		}
		
		var tempar = new Array();
		tempar.push(1);
		openConfirm("确认从VDI中移除选定的防火墙吗？", this, function()
		{
			$.ajax(
			{
				type: 'POST',
				url : BASE_PATH + "/firewallManagement/removeFirewallsFromVDI.do?firewalls=" + encodeURIComponent(firewalls),
		        dataType:"json",
		        data:
		        {
		        	"firewalls":firewalls
		        },
				success : function( data ) 
				{
					if( data == 'success' )
					{
						// 点击树节点
						$("#" + treeNode.tId + "_a").trigger("click");
						
						openAlert('移除防火墙信息成功',function()
						{
							
							// 删除防火墙成功后，重置chooseIds
							chooseIds = new Array();
							
						}
						);
					} 
					else
					{
						openAlert('移除防火墙信息失败');
					}
				}
			}
			);
		}
		, tempar);
	} 
	else 
	{
		openAlert("请选择一条记录"); 
	}
}

/**
 * 跳转至防火墙修改页面
 */
function updateFirewalls()
{
	if (chooseIds.length > 1 ) 
	{
		openAlert("只能选择一条记录");
		return false;
	}else if(chooseIds.length==1){
		var firewall = encodeURIComponent($("#" + chooseIds[0] ).children("td").children("input").val());	
		$("#fireWallID").val(firewall);	
		addOrModifyFirewalls();
	}else{
		openAlert("请选择一条记录");
		return false;
	}
}

/**
 * 跳转至防火墙新增更新页面
 */
function addOrModifyFirewalls()
{
	$.trim($("#treeNodeId").val(treeNode.tId));
	$("#fireWall_addOrModify_form").submit();
}

